package done.easy_001_100;

import com.study.common.ListNode;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;

import static com.study.util.LogUtil.info;

/**
 * Merge Two Sorted Lists 混合插入有序链表
 * <p>
 * 将两个有序链表合并为一个新的有序链表并返回。
 * 新链表是通过拼接给定的两个链表的所有节点组成的。
 * <p>
 * 示例：
 * 输入：1->2->4, 1->3->4
 * 输出：1->1->2->3->4->4
 *
 * @author 大硕
 * 2019-03-22 8:05 AM
 **/
@Slf4j
public class MergeTwoSortedLists {

    @SuppressWarnings("all")
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        // 190322 first
        // 190325 second
        // 190327 third  用了2次才解出来
        // 190331 fourth
        // 190408 fifth
        // 190416 sixth 出了一点小问题,但是手敲出来了
        // 190605 seventh 早就忘的差不多了，调试了很多次做出来的
        return null;
    }

    @Test
    public void test() {
        ListNode l1 = new ListNode(1, 3, 5);
        ListNode l2 = new ListNode(2, 4, 6);
        info(mergeTwoLists(l1, l2));
    }
}



























/*
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
    ListNode dummy = new ListNode(-1);
    ListNode cur = dummy;

    //遍历两个链表
    while (l1 != null && l2 != null) {
        if (l1.val < l2.val) {
            cur.next = l1;
            l1 = l1.next;
        } else {
            cur.next = l2;
            l2 = l2.next;
        }
        cur = cur.next;
    }

    //优先取 l1 元素，取不到才是 l2
    cur.next = (l1 != null) ? l1 : l2;
    return dummy.next;
}
*/
